public class TestPrestamo implements Test {

	String nombre = "Gustavo";
	String apellido = "Ferreyra";
	String direccion="500 Millas 296" ;
	String ciudad= "Rafaela";
	int codigoPostal=2300 ;
	int mes= 10 ;
	int dia= 22;
	int anio= 1991;
	int dni= 35953949;
	int telefono= 451375;
	
	//creo objetos
	Usuario usuario = new Usuario(dni, nombre, apellido, dia, mes, anio, direccion, codigoPostal, ciudad, telefono);
	Prestamo prestamo = new Prestamo(usuario);
	
	//getters and setters
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public Prestamo getPrestamo() {
		return prestamo;
	}
	public void setPrestamo(Prestamo prestamo) {
		this.prestamo = prestamo;
	}
	
	//main
	public static void main(String[] args) {
		TestPrestamo test = new TestPrestamo();
		test.ejecutar();
	}

	//metodos de la interface
	@Override
	public void ejecutar() {
		boolean resultado = true;
		System.out.println("TEST DE LA CLASE PRESTAMO");
		//Imprimir Datos del prestamo
		System.out.println("Datos del prestamo");
		this.comprobarMostrarDatos();
		// Comprobamos el atributo Usuario
		System.out.print("\nUsuario: ");
		if(!this.comprobarUsuario()){
			resultado=false;
			System.out.println("\n\tFALLO");
		}
		else
		{
			System.out.println("\n\tOK");
		}
		//Comprobar metodos
		System.out.println("Modificar Tiempo \t");
		if (!this.comprobarModificarTiempo()) {
			resultado=false;
			System.out.println("\tFALLO");
		}
		else {
			System.out.println("\tOK");
		}
		
		// Veredicto
		if(resultado){
			System.out.println("La clase funciona correctamente");
		}
		else
		{
			System.out.println("Existen Errores en la Clase");
		};
	}
	@Override
	public boolean ejecutarSilencioso() {
		boolean resultado = true;
		// Comprobamos atributos correspondientes
		
		if(!this.comprobarUsuario()){resultado=false;};
		if(!this.comprobarModificarTiempo()){resultado=false;};
		return resultado;
	}
@Override
	public String getClase() {
	
		return this.getPrestamo().getClass().getName();
	}
	
	//Comprobaciones
	public boolean comprobarModificarTiempo(){
		int duracion = 4;
		this.getPrestamo().modificarPlazo(duracion);
	if (this.getPrestamo().getPlazo() == duracion ) {
		return true;
	}
	else {
		return false;
		}
	}
	
	public void comprobarMostrarDatos(){
		this.getPrestamo().mostrarDatos();
	}
	
	public boolean comprobarUsuario() {
	if (this.getUsuario().equals(this.getPrestamo().getUsuario())) {
		return true;
		}
	else {
		return false;
		}
	}

	
}
